package com.example.myweb.Dto;


import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;

/**
 * 更新文章时使用的数据传输对象 (DTO)。
 * 它只包含允许用户在编辑时修改的字段。
 */
@Data
public class UpdateArticleDTO {

    @NotBlank(message = "文章标题不能为空")
    @Size(max = 255, message = "标题不能超过255个字符")
    private String title;

    @NotBlank(message = "文章内容不能为空")
    private String content;

    @NotNull(message = "必须指定文章分类")
    private Integer categoryId;

    /**
     * 更新后的封面图片URL (可选)
     */
    private String coverImageUrl;

    /**
     * 更新后的话题列表 (可选)
     * 在业务逻辑中，通常会清空旧的话题关联，然后用这个新列表重建关联。
     */
    private List<String> topics;

    // 注意：这里不包含 articleId，因为文章ID通常是通过URL路径变量传递的。
    // 也不包含作者ID、发布时间等不应被用户编辑的字段。
}
